﻿/*+===================================================================
File:      EnemySniper.h

Summary:   Định nghĩa lớp CEnemySniper
===================================================================+*/

#ifndef _ENEMYSNIPER_H_
#define _ENEMYSNIPER_H_

#include "GameObject.h"
#include "Bill.h"
#include "Gun.h"

/*C+==================================================================
Class:    CEnemySniper

Summary:  Lớp CEnemySniper.
==================================================================-C*/
class CEnemySniper : public CMoveableObject
{
private:
	// Con trỏ nhân vật để update theo.
	CBill* m_bill;

	bool m_bIsRight;

	// Trạng thái của CEnemySniper.
	int m_nStatus;

	CGun* m_pGun;

	// Thời gian giãn cách của mỗi viên đạn.
	float m_fTimeFire;

	bool m_bIsFiring;

	// Thời gian giãn cách sau khi đã bắn 1 lượt 3 viên đạn.
	float m_fTimeReFire;

	// Số đạn đã bắn ra trong một lượt dùng để xem
	// EnemySniper đã bắn hết đạn trong lượt đó chưa.
	int m_nBulletsFired;

	// Vị trí bắn đạn.
	D3DXVECTOR2 m_bulletPos;

	// Thời gian mất đi của enemy, sau khi bị bắn.
	float m_timeDie;

	void UpdateAnimation();
public:
	CEnemySniper(CBill* bill, D3DXVECTOR2 pos, int id, int typeId);
	~CEnemySniper();

	void Update(float timeFrame);
	
	void UpdateCollision(vector<CGameObject*> vecGameObjs, float timeFrame);

	void Draw();

	bool Kill();
};

#endif